package hcn.service.ods;

import ctd.util.annotation.RpcService;
import hcn.protocol.ods.report.*;

import java.util.List;

/**
 * Created by jinxin on 2015/12/28.
 */
public interface ReportServiceLoader {
    @RpcService
    public void examNotifyByAdapter(ExamReportBean report) throws Throwable;

    @RpcService
    public void labNotifyByAdapter(LabReportBean report) throws Throwable;

    @RpcService
    public void examCancelReport(String orgId, String sourceId, String sourceFrom) throws Throwable;

    @RpcService
    public void labCancelReport(String orgId, String sourceId, String sourceFrom) throws Throwable;

    @RpcService
    public List<ExamReportBean> getExamReportList(ExamHistoryQueryBean queryBean) throws Exception;

    @RpcService
    public List<LabReportBean> getLabReportList(LabHistoryQueryBean queryBean) throws Exception;

    @RpcService
    public ExamReportBean getExamReport(String orgId, String sourceId, String sourceFrom);

    @RpcService
    public LabReportBean getLabReport(String orgId, String sourceId, String sourceFrom);

    @RpcService
    public ExamReportBean orientQueryExamReport(String orgId, String name, String barCode) throws Exception;

    @RpcService
    public LabReportBean orientQueryLabReport(String orgId, String name, String barCode) throws Exception;

    /*-----------------------------------专门为对接医院而加------------------------------------*/
    @RpcService
    public List<ExamReportBean> orientQueryExamReportList(String orgId, String name, String barCode) throws Exception;

    @RpcService
    public List<LabReportBean> orientQueryLabReportList(String orgId, String name, String barCode) throws Exception;

    /*-----------------------------------危急值部分-------------------------------------------*/

    @RpcService
    public void achieveLabCrisis(String orgId, String sourceId, String sourceFrom, List<String> labs) throws Throwable;

    @RpcService
    public void achieveExamCrisis(String orgId, String sourceId, String sourceFrom, String crisisContent) throws Throwable;

    @RpcService
    public void cancelLabCrisis(String orgId, String sourceId, String sourceFrom) throws Throwable;

    @RpcService
    public void cancelExamCrisis(String orgId, String sourceId, String sourceFrom) throws Throwable;

    @RpcService
    public List<LabCrisisDetailBean> getLabCrisisDetail(String orgId, String sourceId, String sourceFrom);

    @RpcService
    public ExamCrisisDetailBean getExamCrisisDetail(String orgId, String sourceId, String sourceFrom);

    @RpcService
    public LabCrisisResultBean updateLabCrisis(LabUpdateCrisisBean report);

    @RpcService
    public void updateExamCrisis(ExamUpdateCrisisBean report);
}
